/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dao;

import negocio.Cliente;
import clases.Direccion;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Juan escom
 */
public class ClienteDAO {
    
    public ClienteDAO(){}
    
    public void insertarCliente(Cliente cliente){
        //public void insertarCliente(String rfc, String nombre, String telefono, String email, Direccion direccion){
        
        conexionDAO cbd = new conexionDAO();
        cbd.abrirConexion();        
        String queryDireccion = "insert into direccion(calle,noExterior,noInterior,delegacion,cp) values ('"+cliente.getDirección().getCalle()+"','"+cliente.getDirección().getNoExterior()+"',"+cliente.getDirección().getNoInterior()+",'"+cliente.getDirección().getDelegacion()+"',"+cliente.getDirección().getCp()+" );";
        String queryCliente = "insert into cliente(RFC,nombre,telefono,email,idDireccion) values ('"+cliente.getRFC()+"','"+cliente.getNombre()+"','"+cliente.getTelefono()+"','"+cliente.getEmail()+"', (select max(idDireccion) from direccion) );";
        try{
            cbd.execute(queryDireccion);
            cbd.execute(queryCliente);
            cbd.cerrarConexion();
        }
        catch(Exception e){
            System.out.println(e.getMessage());
        }     
        
    }
    
    public int consultarRFC(String RFC)
    { 
        conexionDAO cbd = new conexionDAO();               
        String query = "select count(*) from cliente where rfc ='"+RFC+"'";
        int res = 0;
        ResultSet rs;
        
        try{
            cbd.abrirConexion(); 
            rs = cbd.consulta(query);
            
            while (rs.next())
            {
                res = rs.getInt (1);
            }
            
            cbd.cerrarConexion();
            
            return res;
        }
        catch(Exception e){
            System.out.println(e.getMessage());
            return 0;
        }
    }
  
        
    public List<String> Juan(String RFC){
        
        List<String> lista = new ArrayList<String>();
        conexionDAO cbd = new conexionDAO();
        
        String query = "select c.rfc,c.nombre,c.telefono,c.email,d.calle,d.noExterior,d.noInterior,d.delegacion,d.cp "+
                       "from cliente c, direccion d "+
                       "where c.idDireccion = d.idDireccion "+
                       "and c.RFC ='"+RFC+"'";              
        ResultSet rs;
        
        try{
            cbd.abrirConexion(); 
            rs = cbd.consulta(query);
            
            while (rs.next())
            {
                lista.add(rs.getString(1));                         //rfc
                lista.add( rs.getString(2) );                       //nombre
                if( rs.getString(3).length()  == 0 ) { lista.add("No existe"); }   //telefono
                    else { lista.add( rs.getString(3) ); }
                lista.add(rs.getString(4) );                        //email
                lista.add(rs.getString(5) );                        //calle
                if( rs.getString(6).length()  == 0 ) { lista.add("No existe"); }   //No. Exterior
                    else { lista.add( rs.getString(6) ); }
                lista.add( String.valueOf(rs.getInt(7)) );          //No. Interior
                lista.add(rs.getString(8) );                        //Delegacion
                lista.add( String.valueOf(rs.getInt(9)) );          //CP                                                           
            }
            
            cbd.cerrarConexion();
            
            return lista;
        }
        catch(Exception e){
            System.out.println(e.getMessage());
            return lista;
        }
        
        //lista.add("Juan Enriquez");
        
        //return  lista;
        
    }
    
    public List<String> fabi(String RFC){
        
        List<String> lista = new ArrayList<String>();
        
        String query = "select c.nombre,c.telefono,c.email,d.calle,d.noExterior,d.noInterior,d.delegacion,d.cp "+
                       "from cliente c, direccion d "+
                       "where c.idDireccion = d.idDireccion "+
                       "and c.RFC ='"+RFC+"'";                
        
        lista.add(query);
        
        return lista;
    }
    
}
/*
 select c.RFC,c.nombre,c.telefono,c.email, d.calle, d.noExterior,d.noInterior,d.delegacion,d.cp
 from cliente c, direccion d
 where c.idDireccion = d.idDireccion;
  
 select c.nombre,c.telefono,c.email, d.calle, d.noExterior,d.noInterior,d.delegacion,d.cp
 from cliente c, direccion d
 where c.idDireccion = d.idDireccion
 and c.RFC ="JUAN810823JYF";
  
 */
